1. Field Of The Invention
The present invention relates to parallel computer architecture and processes, and, more particularly, to dataflow processing elements, dataflow computers comprising a plurality thereof, and dataflow processes. Still more particularly, the present invention relates to high performance numerical computing to which dataflow computer architecture and techniques are particularly applicable.
2. The Related Art
It is now generally recognized that efficient application of modern integrated circuit technology to high performance computation requires use of highly parallel computer architectures--machines having many processing sites (processing elements) where stored instructions are activated and executed. The usual form of a highly parallel computer is a collection of a number of sequential processing elements that intercommunicate either by sharing access to a common global memory, or by sending messages to one another by means of some form of interconnection network. Computers with this architecture are limited in the performance they can achieve in numerical computation for several reasons, a principal one being the reduction of performance involved in coordinating operations in the several processing elements. Dataflow computer architecture is a concept for the organization of processing elements in which instructions are activated promptly after the data values on which they operate become available for use. In the dataflow computer of the present invention, many dataflow processing elements are interconnected by a packet routing network that allows any processing element to send packets of information to any other processing element. These processing elements are capable of processing many instructions concurrently and incorporate an efficient mechanism for indicating which instructions are ready for execution. This structure performs the synchronization functions for coordination of concurrent activities, including the conditioning of instruction activation in one processing element on the arrival of a packet from another processing element. This dataflow computer is capable of greater efficiency in highly parallel computation than is possible with other known parallel computer architectures. In contrast with a conventional machine language program, which corresponds to a sequentially executed array of instructions, a dataflow machine program corresponds to a directed graph in which each node represents a dataflow instruction and each arc represents a data dependency of one instruction on the result produced by another instruction. Descriptions of the form and behavior of dataflow programs use the terminology of the theory of directed graphs, and are related to the system modeling theory known as Petri nets. The unconventional form of dataflow programs requires a significant change in the way programs are written and transformed into machine language. In place of languages like Fortran, which are designed for efficient program execution on sequential computers, functional programming languages such as Val are better suited for programming dataflow computers. Functional languages have the property that the flow of data values from definition to use is directly evident from the text and structure of the source language program. In a language such as Fortran, complicated analytical techniques are needed to identify the flow of data. In some Fortran programs, this flow may be impossible to determine.